#hexo与nexT配置经历
来回捣鼓了一天,也算小有收获。
git,静态网站,node,js,markdown,这些都或多或少重新学习了一下
遇到的问题:由于盲目相信virtualstudio安装上的nodejs,添加了环境变量就拿来直接用。结果最后安装wordcount出毛病才发现装的是那么老的版本 说明弄清环境是多么重要
做过的处理
动态背景
增强版权信息
原创部分:修改post-copyright.swig,在开头增加
1 | {% if page.nocopyright %} |
即默认显示版权信息,仅当文章前有nocopyright= true 声明时才隐藏版权信息
- 点击特效
fireworklove - 底部原框架信息移至关于并增加镜像链接
- busuanzi,wordcount侧栏站点统计
- 主页文章阴影(看不出来啊。。。)
- valine评论插件
- 连接文本样式优化
- 文章结束标记
- 文末#标签图标化
- 在右上角或者左上角实现fork me on github(这里)
- valine.min.js cdn优化
- 复制增加版权声明
- 底部微信二维码
- 文章top排列
- 文章密码
愿景:代码块复制(没成功)
笔记
hexo结构
- post文章模板
/themes/next/layout/_macro/post.swig
- 拓展js: 将文件放在\themes\next\source\js\src目录下,并在next\layout\ _layout.swig内的标签前添加引用,还可以用
1 | {% if 标签名称 %} |
的形式添加为可开启功能(需要在_config 内修改)
1. 整站样式
1. 设置主题风格
打开 themes/next/_config.yml
文件,搜索 scheme
关键字,将你需用启用的 scheme
前面注释 # 去除即可。
1 | # --------------------------------------------------------------- |
2. 设置菜单项的显示文本和图标
NexT 使用的是 Font Awesome 提供的图标, Font Awesome 提供了 600+ 的图标,可以满足绝大的多数的场景,同时无须担心在 Retina 屏幕下图标模糊的问题。
2.1 设置菜单项的显示中文文本:
打开 themes/next/languages/zh-Hans.yml
文件,搜索 menu
关键字,修改对应中文或者新增。
1 | menu: |
2.2 设定菜单项的文件目录和对应图标(新版两项合并)
打开 themes/next/_config.yml
文件,搜索 menu_icons
关键字,修改对应图标名称或者新增对应 menu
的图标。
1 | # --------------------------------------------------------------- |
除了 home
, archives
, /
后面都需要手动创建这个页面
2.3 创建菜单项对应文件目录(以分类为例)
在终端窗口下,定位到 Hexo
站点目录下。使用 hexo new page
新建一个页面,命名为 categories :
1 | $ cd your-hexo-site |
编辑刚新建的页面,设置分类
1 | --- |
3. 新建404界面
在站点根目录下,输入 hexo new page 404
,默认在 Hexo
站点下/source/404/index.md
打开新建的404界面,在顶部插入一行,写上 permalink: /404
,这表示指定该页固定链接为 http://"主页"/404.html
。
4. 本地搜索
在你站点的根目录下
1 | $ npm install hexo-generator-searchdb --save |
打开 Hexo
站点的 _config.yml
,添加配置
1 | search: |
打开 themes/next/_config.yml
,搜索关键字 local_search
,设置为 true
:
1 | # Local search |
5. 设置网站的图标Favicon
在EasyIcon中找一张(32*32)的ico
图标,或者去别的网站下载或者制作,并将图标名称改为favicon.ico
,然后把图标放在/themes/next/source/images
里,并且修改主题配置文件:
1 | # Put your favicon.ico into `hexo-site/source/` directory. |
6.修改字体大小
打开\themes\next\source\css\ _variables\base.styl
文件,将$font-size-base
改成16px
,如下所示:
1 | $font-size-base =16px1 |
1.8. 各版块透明度修改
1. 内容板块透明
博客根目录 themes\next\source\css\_schemes\Pisces\_layout.styl
文件 .content-wrap
标签下 background: white
修改为:
1 | background: rgba(255,255,255,0.7); //0.7是透明度 |
2. 菜单栏背景
博客根目录 themes\next\source\css\_schemes\Pisces\_layout.styl
文件 .header-inner
标签下 background: white
修改为:
1 | background: rgba(255,255,255,0.7); //0.7是透明度 |
3. 站点概况背景
博客根目录 themes\next\source\css\_schemes\Pisces\_sidebar.styl
文件 .sidebar-inner
标签下 background: white
修改为:
1 | background: rgba(255,255,255,0.7); //0.7是透明度 |
然后修改博客根目录 themes\next\source\css\_schemes\Pisces\_layout.styl
文件 .sidebar
标签下 background: $body-bg-color
修改为:
1 | background: rgba(255,255,255,0.7); //0.7是透明度 |
4. 按钮背景
博客根目录 themes\next\source\css\_common\components\post\post-button.styl
同上修改对应位置为 background: transparent;
2. 顶部
2.1. 添加顶部加载条
打开 themes/next/_config.yml
,搜索关键字 pace
,设置为 true
,可以更换加载样式:
1 | # Progress bar in the top during page loading. |
2.2. 网站标题栏背景颜色
当使用Pisces主题时,网站标题栏背景颜色是黑色的,感觉不好看,可以在 source/css/_schemes/Pisces/_brand.styl
中修改:
1 | .site-meta { |
但是,我们一般不主张这样修改源码的,在 next/source/css/_custom
目录下面专门提供了 custom.styl
供我们自定义样式的,因此也可以在 custom.styl
里面添加:
1 | // Custom styles. |
3. 文章流
3.1 博文置顶
修改站点文件夹下node_modules/hexo-generator-index/lib/generator.js
,在生成文章之前进行文章top值排序。
Netcan_Space的解决Hexo置顶问题给出了一种新方案 ,可以避免修改组件的尴尬并便于移植,可用性有待尝试已验证,执行
1 | npm install hexo-generator-index-pin-top --save |
文章标注中的top值和sticky值默认为零,需排序就调大top,要置顶图标设sticky(注意sticky不能排序)在文章中,增加top值定义,值越大,文章排序越靠前。示例:
1 | title: 为Hexo添加文章置顶功能(三) |
3.2 主页文章添加边框阴影效果
打开 themes/next/source/css/_custom/custom.styl
,向里面加代码:
1 | // 主页文章添加阴影效果 |
3.3. 修改文章间分割线
打开 themes/next/source/css/_common/components/post/post-eof.styl
,修改:
1 | .posts-expand { |
3.4. 文章加密访问
打开themes->next->layout->_partials->head.swig
文件,在以下位置插入这样一段代码:
代码如下:
1 | <script> |
然后在文章上写成类似这样:
4. 文章内
4.1文章顶部显示更新时间
打开主题配置文件 _config.yml
,搜索关键字 updated_at
设置为 true
:
1 | # Post meta display settings |
编辑文章,增加关键字updated
(next可以根据文章改变时间自动更改)
1 | --- |
4.1 实现顶部统计功能
在根目录下安装 hexo-wordcount
,运行:
1 | $ npm install hexo-wordcount --save1 |
然后在主题的配置文件中,配置如下:
1 | # Post wordcount display settings |
4.2代码块优化
4.2.1代码块自定义样式
打开\themes\next\source\css\_custom\custom.styl
,向里面加入:(颜色可以自己定义)
1 | // Custom styles. |
行内代码
在主题目录下,将source/css/_custom/custom.styl
文件修改如下:1
2
3
4
5
6
7
8
9//行内代码样式
code {
color: #c7254e;
background: #f9f2f4;
border: 1px solid #d6d6d6;
padding:1px 4px;
word-break: break-all;
border-radius:4px;
}区块代码
在主题目录下,修改config.yml
文件:1
2# 样式可选: normal | night | night eighties | night blue | night bright
highlight_theme: night
22. 给代码块添加复制功能!!!(没成功,研究中)
- 下载插件clipboard.js 。
- 打开
themes/next/source/lib/
,新建文件夹clipboard
。 - 把下载
clipboard.js
下的src
文件夹下的文件拖动到clipboard
文件夹下。 - 打开
themes/next/source/js/src/
,新建文件custom.js
,代码如下:
1 | //此函数用于创建复制按钮 |
- 打开
themes/next/layout/_custom/
,新建文件custom.swig
,代码如下:
1 | <script type="text/javascript" src="/lib/clipboard/clipboard.js"></script> |
- 修改文件
themes/next/layout/_layout.swig
,在标签</body>
上面插入代码:
1 | {% include '_custom/custom.swig' %} |
4.3 修改文章内链接文本样式
修改文件 themes\next\source\css\_common\components\post\post.styl
,在末尾添加如下css样式,:
1 | // 文章内链接文本样式 |
其中选择.post-body
是为了不影响标题,选择 p
是为了不影响首页“阅读全文”的显示样式,颜色可以自己定义。
4.4 在每篇文章末尾统一添加“本文结束”标记
在路径 \themes\next\layout\_macro
中新建 passage-end-tag.swig
文件,并添加以下内容:
1 | <div> |
接着打开\themes\next\layout\_macro\post.swig
文件,在post-body
之后, post-footer
之前添加如下画红色部分代码(post-footer之前两个DIV):
代码如下:
1 | <div> |
然后打开主题配置文件(_config.yml
),在末尾添加:
1 | # 文章末尾添加“本文结束”标记 |
完成以上设置之后,在每篇文章之后都会添加如上效果图的样子。
4.5增强文章底部版权信息并默认开启
增加文章标题、发布时间、更新时间等信息
原创部分
默认显示版权信息,仅当文章md文件的头部信息中添加
nocopyright: true
时,隐藏版权声明
在目录next/layout/_macro/
下找到post-copyright.swig
,进行部分修改:
1 | {% if page.nocopyright %} |
如果要在特定博文下取消版权信息的显示,需要在 Markdown 中增加nocopyright: true的设置,类似:
1 | --- |
>
(注意:如果解析出来之后,你的原始链接有问题,变成如:
http://yoursite.com/小项目.html
,在根目录下_config.yml
中补充url信息就行了。
4.6 打赏
- 修改文字与图片
1 | # 打赏设置 |
文字、图片位置可自行修改
- 字体不闪动设置
修改文件next/source/css/_common/components/post/post-reward.styl
,然后注释其中的函数wechat:hover
和alipay:hover
,如下:
1 | /* 注释文字闪动函数 |
4.7. 修改文章底部的那个带#号的标签
打开 themes/next/layout/_macro/post.swig
文件,搜索 rel="tag">#
,将 #
换成 <i class="fa fa-tag"></i>
1 | <div class="post-tags"> |
4.8 禁用hexo特定博客的评论功能:
只要在markdown的题头加入
commens: false
即可。
如,你的原文可能如下:
title: 标题
date: 2014-11-06 20:46:29
---
正文
改成如下的格式即可:
title: 标题
date: 2014-11-06 20:46:29
comments: false
---
正文
5. 侧边栏设置
5.1 设置侧边栏社交链接
打开 themes/next/_config.yml
文件,搜索关键字 social
,然后添加社交站点名称与地址即可。
1 | # --------------------------------------------------------------- |
5.2 设置侧边栏社交图标
打开 themes/next/_config.yml
文件,搜索关键字 social_icons
,添加社交站点名称(注意大小写)图标,Font Awesome图标地。
打开主题配置文件(_config.yml
),搜索social_icons:
,在图标库找自己喜欢的小图标,并将名字复制在如下位置
5.3. 头像设置
5.3.1 添加头像
打开 themes/next/_config.yml
文件,搜索 Sidebar Avatar
关键字,去掉 avatar
前面的#
:
1 | # Sidebar Avatar |
或者使用本地图片,把图片放入 themes/next/source/images
下,修改 avatar
:
1 | avatar: /images/avatar.gif |
5.3.2 设置头像边框为圆形框
打开位于 themes/next/source/css/_common/components/sidebar/sidebar-author.syl
文件,修改如下:
1 | .site-author-image { |
5.3.3特效:鼠标放置头像上旋转
1 | .site-author-image { |
5.3.4 浏览页面的时候显示当前浏览进度
打开 themes/next/_config.yml
,搜索关键字 scrollpercent
,把 false
改为 true
。
1 | # Scroll percent label in b2t button |
推荐 如果想把 top
按钮放在侧边栏,打开 themes/next/_config.yml
,搜索关键字 b2t
,把 false
改为 true
。
1 | # Back to top in sidebar |
5.4 友情链接
打开 themes/next/_config.yml
文件,搜索关键字 Blog rolls
:
1 | # Blog rolls |
5.5 RSS
在你 Hexo
站点目录下:
1 | $ npm install hexo-generator-feed --save |
打开 Hexo
站点下的 _config.yml
,添加如下配置:
1 | # feed |
在里面的末尾添加:(请注意在冒号后面要加一个空格,不然会发生错误!)
1 | # Extensions |
然后打开next主题文件夹里面的_config.yml
,在里面配置为如下样子:(就是在rss:
的后面加上/atom.xml
,注意在冒号后面要加一个空格)
1 | # Set rss to false to disable feed link. |
配置完之后运行:
1 | $ hexo g |
重新生成一次,你会在./public
文件夹中看到 atom.xml
文件。然后启动服务器查看是否有效,之后再部署到 Github 中。
5.6词云
其实就是标签做的,放在侧边栏上。需要安装插件。
1 | npm install hexo-tag-cloud --save |
接着在next/layout/_macro/sidebar.swig添加如下内容。
1 | {% if site.tags.length > 1 %} |
5.7 运行时间
在next/layout/_custom/sidebar.swig文件中先添加。
1 | <div id="days"></div> |
接着在next/layout/_macro/sidebar.swig文件中修改。
1 | {# Blogroll #} |
觉得需要调整颜色的还可以在/next/source/css/_custom/custom.styl加入如下的语句。
1 | // 自定义的侧栏时间样式 |
5.8 添加网易云音乐
在网易云音乐(网页版)中搜索我们想要插入的音乐,然后点击生成外链播放器
然后根据你得设置生成相应的html代码,将获得的html代码插入到你想要插入的位置。
在 themes/next/layout/_custom/sidebar.swig
文件中增加生成的HTML代码:
1 | <div id="music163player"> |
可以根据自己实际情况修改宽高等样式。
5.9 侧边栏添加访问量等信息
- 获取不蒜子代码
在不蒜子上获取代码:
1 | <script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script> |
- 添加js文件
在主题目录下,找到\layout\_layout.swing
文件, 在文件的后面, </body>
标签之前,添加上面代码。
- 安装wordcount
1 | npm install hexo-wordcount --save |
- 修改布局
在主题目录下,找到\layout\_macro\sidebar.swing
文件,查找/nav
,在</nav>
标签之前,添加下面代码:
1 | <br> |
6. 底部
6.1. 页脚加上微信二维码
主题默认的微信订阅个人感觉不美观,看到很多网站都是在页脚有个微信的 Logo,然后鼠标移动到上面便会显示二维码,这样感觉很棒。
首先编辑文件,在文件最后加上下面代码:
1 | 文件位置:~/blog/themes/next/layout/_partials/footer.swig |
再在/images文件夹放入wechat.svg,wechatlogo.svg(下文有说明)
然后编辑custom.styl
,加入:
1 | 文件位置:~/blog/themes/next/source/css/_custom/custom.styl |
图片务必用矢量图 svg 格式,否则手机上显示效果很差,其它的自己看情况更改。
微信 Logo 的图片我准备好了,点击下载** wechat.svg (1.6 KB) 。二维码怎么弄成 svg 格式呢,安利个 网站 ,下载 svg 格式的就行。
6.5. 隐藏网页底部powered By Hexo / 强力驱动并自定义
在主题配置文件_config.yml
中修改:
1 | copyright: false |
- 添加文字或者链接
在主题目录下的layout/_partials/footer
,查找powered-by
:
1 | {% if theme.copyright %} |
在上面代码之前添加你的文字,或者增加链接:
1 | <p>best for best!</p> <!--文字--> |
至于样式,这里不多介绍。需要了解html、css知识。
6.6.让页脚的心跳动起来
更新 NexT 主题后,发现默认的icon
变成了** (user),所以首先要还原为heart
首先编辑主题配置文件:
1 | 文件位置:~/blog/themes/next/_config.yml |
然后编辑:
1 | 文件位置:~/blog/themes/next/layout/_partials/footer.swig |
接着编辑custom.styl
,加入:
1 | 文件位置:~/blog/themes/next/source/css/_custom/custom.styl |
color 的值可以改成你自己喜欢的,灵感来自 DIYgod 大佬的博客,CSS 代码参考 这篇文章
7. 拓展
8. 站点优化
8.1. 博文压缩
本着能偷懒则偷懒的原则,选择了使用hexo-neat插件,hexo-neat插件使用HTMLMinifier、clean-css、UglifyJS插件实现。
使用$ npm install hexo-neat --save
安装完成以后,打开站点配置文件,添加以下属性。启用hexo-neat
的基础上,可以选择是否压缩HTML、CSS、Js文件,均有相应的开关选项。
1 | # hexo-neat |
8.4. 修改访问URL路径
默认情况下访问URL路径为:domain/2017/08/18/关于本站
,修改为 domain/About/关于本站
。 编辑 Hexo
站点下的 _config.yml
文件,修改其中的 permalink
字段:
1 | permalink: :category/:title/ |
给你的hexo站点添加sitemap网站地图
安装hexo的sitemap网站地图生成插件
1
2npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save在你的hexo站点的
_config.yml
添加下面的代码1
2
3
4
5# hexo sitemap网站地图
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml配置成功后,hexo编译时会在hexo站点根目录生成sitemap.xml和baidusitemap.xml
其中sitemap.xml适合提交给谷歌搜素引擎,baidusitemap.xml适合提交百度搜索引擎。
其次,在robots.txt中添加下面的一段代码:1
2Sitemap: http://www.arao.me/sitemap.xml
Sitemap: http://www.arao.me/baidusitemap.xml
请自行改成自己的网站。
给你的hexo网站添加蜘蛛协议robots.txt
可以参考我的robots.txt,代码如下
1 | # hexo robots.txt |
把robots.txt放在你的hexo站点的source
文件下即可。
给非友情链接的出站链接添加 “nofollow” 标签
经过chinaz站长工具友情链接检测,发现有不必要的PR值输出,对于非友情链接的PR值输出,我们可以加上nofollow便签避免不必要的PR输出。
以hexo的NexT主题为例,需要修改两处
a. 找到footer.swig,路径在your-hexo-site\themes\next\layout\_partials
,将下面代码
1 | {{ __('footer.powered', '<a class="theme-link" href="http://hexo.io">Hexo</a>') }} |
改成
1 | {{ __('footer.powered', '<a class="theme-link" href="http://hexo.io" rel="external nofollow">Hexo</a>') }} |
将下面代码
1 | <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next"> |
改成
1 | <a class="theme-link" href="https://github.com/iissnan/hexo-theme-next" rel="external nofollow"> |
b. 修改sidebar.swig
文件,路径在your-hexo-site\themes\next\layout\_macro
,将下面代码
1 | <a href="{{ link }}" target="_blank">{{ name }}</a> |
改成
1 | <a href="{{ link }}" target="_blank" rel="external nofollow">{{ name }}</a> |
将下面代码
1 | <a href="http://creativecommons.org/licenses/{{ theme.creative_commons }}/4.0" class="cc-opacity" target="_blank"> |
改成
1 | <a href="http://creativecommons.org/licenses/{{ theme.creative_commons }}/4.0" class="cc-opacity" target="_blank" rel="external nofollow"> |
让你的关键字出现在title标题里
关键字出现在title标题里是有利于seo优化的,前提是你的目标关键词已经确定好。如果确定好的话,尽可能让它们在title标题尽量靠前,同时标题总字数注意控制在80个字符以内,切勿堆砌关键字。title的标点符号:关键词分割符号英文半角逗号,_ | ;品牌与关键词分割符号 -
具体实现方法参考hexo NexT主题首页title的优化
参考:
http://www.jianshu.com/p/3ff20be857
https://zhuanlan.zhihu.com/p/30836436
http://blog.csdn.net/qq_33699981/article/details/72716951
http://blog.csdn.net/heqiangflytosky/article/details/54863185
http://blog.csdn.net/destinytaoer/article/details/78400023
看到有些next主题的网站很炫酷,那么是怎么配置的呢?接下来我会讲一讲如何实现一些炫酷的效果